package com.songjia.stream.test01;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.cloud.stream.messaging.Processor;
import org.springframework.cloud.stream.messaging.Source;
import org.springframework.integration.support.MessageBuilder;
import org.springframework.messaging.MessageChannel;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.web.WebAppConfiguration;

@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
@SpringBootTest
public class MyTest01 {

	// ***************************************** 通过注入Source 接口的方式，发送消息 *****************************************//

	@Autowired
	private Source source;

	/**
	 * 发送消息
	 */
	@Test
	public void testSend1() {
		this.source.output().send(MessageBuilder.withPayload("通过注入Source 接口的方式，发送消息").build());
	}
	
	
	// ***************************************** 通过注入MessageChannel的方式，发送消息 *****************************************//

	@Autowired
	@Qualifier(Source.OUTPUT)
	private MessageChannel messageChannel;

	/**
	 * 发送消息
	 */
	@Test
	public void testSend2() {
		this.messageChannel.send(MessageBuilder.withPayload("通过注入MessageChannel的方式，发送消息").build());
	}
	
	
	// ***************************************** 测试Processor，发送消息 *****************************************//
//	
//	@Autowired
//	private Processor processor;
//	/**
//	 * 发送消息
//	 */
//	@Test
//	public void testSend3() {
//		this.processor.output().send(MessageBuilder.withPayload("通过注入Processor的方式，发送消息").build());
//	}

}
